package com.qidianit.mes.pro.service;

import com.github.pagehelper.PageInfo;
import com.qidianit.mes.pojo.Result;
import com.qidianit.mes.pojo.pro.Process;
import org.apache.ibatis.annotations.Param;

/**
 * 工序服务接口
 */
public interface ProcessService {
    /**
     * 生成编号
     * @return
     */
    Result<String> autoCode();


    /**
     * 根据工序的processCode、processName、isActive查询工序列表，支持分页查询
     * @param process 工序查询条件
     * @param pageNum 页码
     * @param pageSize 每页条数
     * @return 分页查询结果
     */
    Result<PageInfo<Process>> selectList(Process process, int pageNum, int pageSize);

    /**
     * 根据工序编码精确查询工序
     * @param processCode 工序编码
     * @return 工序查询结果
     */
    Result<Process> selectByCode(String processCode);

    /**
     * 新增工序
     * @param process 工序信息
     * @return 新增操作结果
     */
    Result saveProcess(Process process);

    /**
     * 根据ID编辑工序信息
     * @param process 工序信息
     * @return 编辑操作结果
     */
    Result updateById(Process process);

    /**
     * 根据ID删除工序信息，为逻辑删除（将is_deleted修改为1）
     * @param id 工序ID
     * @return 删除操作结果
     */
    Result deleteById(Long id);

    /**
     * 根据ID数组批量删除工序信息，为逻辑删除（将is_deleted修改为1）
     * @param ids 工序ID数组
     * @return 批量删除操作结果
     */
    Result batchDelete(@Param("ids") Long[] ids);
}
    